//* ES2017 标准引入了 async 函数，使得异步操作变得更加方便。
//* async 函数是什么？一句话，它就是 Generator 函数的语法糖。

// 1.内置执行器。
// 2.更好的语义。
// 3.更广的适用性。
// 4.返回值是 Promise。

const fs = require("fs");

const delay = (time) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      console.log(123);
      resolve("等待结束了");
    }, time);
  });
};

const read = (url) => {
  return new Promise((resolve, reject) => {
    fs.readFile(url, "utf-8", (err, data) => {
      if (err) throw err;
      resolve(data);
    });
  });
};

// async function fn() {
//   await
// }

const fn = async () => {
  const res = await delay(2000);
  console.log(res);
  const res2 = await read("./02-回调函数.js");
  console.log(res2);
};

fn();
